#ifndef FENETREOPENGL_H
#define FENETREOPENGL_H

#include <QGLWidget>
#include <QTimer>
#include <QtOpenGL>

/*
 *  @autheur : LEMOUEL Florian
 *  @date : 04.04.2013
 *  @version 1.0 : création de la classe complète
 */

/*
 * Classe permettant de définir un QTwidget personnalisé d
 * pour une fenêtre opengl.
 */
class FenetreOpengl : public QGLWidget
{
    Q_OBJECT
 //--------------------- Constructeurs et destructeur -------------------
public:

    //Constructeur par défault
    explicit FenetreOpengl(int framesPerSecond = 0, QWidget *parent = 0, char *name = 0);

    //Destructeur
    ~FenetreOpengl();
    //----------------------------------------------------------------------
    //--------------------- Méthodes ---------------------------------------
public:

    //On initialise la fenêtre opengl
    void initializeGL();

    //Fonction permettant de redimensionner correctement la fenêtre
     void resizeGL(int width, int height);

    //Fonction de dessin
    void paintGL();

    //Fonction récupérant l'évènement de l'appuie d'une touche sur le clavier
    void keyPressEvent( QKeyEvent *keyEvent );

    //--------------------- Slots  -----------------------------------------
public slots:

    //Slot permettant de récupérer l'évènement du timer pour rafraichir la fenetre
    void timerTermine();

    //----------------------------------------------------------------------

    //----------------------------------------------------------------------
    //--------------------- Accesseurs -------------------------------------


    //----------------------------------------------------------------------
    //--------------------- Surcharge des opérateurs -----------------------

    //----------------------------------------------------------------------
    //--------------------- Attributs --------------------------------------
private:

    //Timer définissant le temps de rafraichissement de la fenêtre
    QTimer* _timer;

    //----------------------------------------------------------------------
};

#endif // FENETREOPENGL_H
